package main

import (
	"io/ioutil"
	"log"
	"os"
)

func main() {
	//logTestOne()
	logTestTwo()
	//readDirTest()
}

//go的log包本身不提供日志级别的概念，但是可以通过自定义函数来实现。
func logTestOne() {
	file, err := os.OpenFile("sskLog1.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
	if err != nil {
		log.Fatal("创建日志文件失败：", err)
	}
	defer file.Close()
	
	//使用SetOutput()函数将日志输出重定向到文件中
	log.SetFlags(log.Ltime | log.Ldate | log.Llongfile)
	
	log.SetOutput(file)
	log.Println("这是一条日志信息111")
	log.Println("这是一条带格式的日志信息2024年4月24日13:09:20：%s", "参数")
}

func logTestTwo() {
	// 设置日志输出到标准输出:
	//log.SetOutput(os.Stdout)
	
	//日志输出到文件
	//file, err := os.Create("sunshukang_log.txt")
	//if err != nil {
	//	log.Fatal("Unable to create log file:", err)
	//}
	//defer file.Close()
	
	/*
		file, err := os.OpenFile("sunshukang_log.txt", os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0666)
		if err != nil {
			log.Fatal("创建日志文件失败：", err)
		}
		defer file.Close()
	
		//测试文件写入
		file.WriteString("\r\nxneo.exe append start\r\n")
		file.WriteString(fmt.Sprintf("clientUserId=%s\r\n", "user.Tag"))
		file.WriteString(fmt.Sprintf("clientAccountId=%s\r\n", "uid"))
		file.WriteString(fmt.Sprintf("clientOrderNumber=%s\r\n", "res.OrderNumber"))
		file.WriteString(fmt.Sprintf("clientFarmId=%d\r\n", "res.FarmId"))
		log.SetOutput(file)
		log.Println("Log message written to file.333")
		log.Println("这是一条日志信息2024年4月24日11:36:11")
	*/
	
	logFilePath := "D:\\Project\\LearnGo\\sunshukang_log.txt"
	newSavePath := "D:\\Project\\LearnGo\\sunshukang123_log.txt"
	
	renameErr := os.Rename(logFilePath, newSavePath)
	if renameErr != nil {
		log.Println("重命名os.Rename错误：", renameErr, "路径是：", logFilePath)
	} else {
		log.Println("重命名成功:", newSavePath)
	}
	
	//log.Panic("2024年4月24日11:36:04Panic! Program will panic and exit.")
}

func readDirTest() {
	userPath := "C:\\Users\\0921ssk\\AppData\\Roaming\\XneoYs\\73d40f2bf2f6419c8976d96f8f7db7dc"
	fs, _ := ioutil.ReadDir(userPath)
	for _, v := range fs {
		log.Println("ioutil.ReadDir测试v为：", v.Name())
		if !v.IsDir() {
			log.Println("ioutil.ReadDir不是Dir为：", v.Name())
			//if strings.HasPrefix(v.Name(), "resolve-") && strings.Contains(v.Name(), filepath.Base(res.FilePath)) &&
			//	!invalidSuffix(v.Name()) {
			//	existSave = filepath.Join(user.UserPath(), v.Name())
			//}
		}
	}
}
